﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class KodVlaevTunnVastus : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IKodVlaevTunnVastus {
        
        private KodVlaevTunnVastus.ITunnistusType @__tunnistus;
        
        private string @__teade;
        
        public KodVlaevTunnVastus() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public KodVlaevTunnVastus(KodVlaevTunnVastus.ITunnistusType @tunnistus, string @teade) {
            this.@__tunnistus = @tunnistus;
            this.@__teade = @teade;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public KodVlaevTunnVastus(KodVlaevTunnVastus.ITunnistusType @tunnistus) {
            this.@__tunnistus = @tunnistus;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected KodVlaevTunnVastus(IKodVlaevTunnVastus @kodVlaevTunnVastus) {
            this.@__tunnistus = @kodVlaevTunnVastus.Tunnistus;
            this.@__teade = @kodVlaevTunnVastus.Teade;
        }
        
        public virtual KodVlaevTunnVastus.ITunnistusType Tunnistus {
            get {
                return this.@__tunnistus;
            }
            set {
                this.@__tunnistus = value;
            }
        }
        
        public virtual string Teade {
            get {
                return this.@__teade;
            }
            set {
                this.@__teade = value;
            }
        }
        
        public partial class TunnistusType : ITunnistusType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IVlaevTunnistus> @__tunnistus = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IVlaevTunnistus>();
            
            public TunnistusType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public TunnistusType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IVlaevTunnistus> @tunnistus) {
                this.@__tunnistus = @tunnistus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected TunnistusType(ITunnistusType @tunnistusType) {
                this.@__tunnistus = @tunnistusType.Tunnistus;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IVlaevTunnistus> Tunnistus {
                get {
                    return this.@__tunnistus;
                }
                set {
                    this.@__tunnistus = value;
                }
            }
        }
        
        public interface ITunnistusType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IVlaevTunnistus> Tunnistus {
                get;
                set;
            }
        }
    }
}
